// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright (c) 2023 Yevhen Babiichuk (DustDFG)

#ifndef _VECTOR_TUBE_SET_BUILDER_HPP_
#define _VECTOR_TUBE_SET_BUILDER_HPP_

#include <vector>
#include <cstdint>

#include <random>
#include <algorithm>

#include <DotSort/TubeSetBuilder.hpp>

class VectorTubeSetBuilder : public TubeSetBuilder
{
	private:
		std::vector<uint8_t> dots;

		void fillInstance() override;

	public:
		VectorTubeSetBuilder(int8_t tubeSize, uint8_t tubeCount, std::vector<uint8_t> dots);

		static VectorTubeSetBuilder* getRandomInstance();
};

#endif
